package com.atguigu.jedis.demo;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by Smexy on 2022/6/17
 */
public class JedisDemo2 {

    public static void main(String[] args) {

        // 准备连接池的配置对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        //添加一些配置参数
        // 最大连接数
        jedisPoolConfig.setMaxTotal(30);

        //池中待命状态的连接数
        jedisPoolConfig.setMaxIdle(10);

        //客户端从池中借连接的时候，是否先测试(ping)下连接是否完好
        //如果你设置了密码，在每次借连接之前，需要先授权，再ping，测试连接，需要告诉连接池，你的授权密码

        jedisPoolConfig.setTestOnBorrow(true);

        //客户端从池中还连接的时候，是否先测试下连接是否完好
        jedisPoolConfig.setTestOnReturn(true);

        //设置连接耗尽时，还有线程来借连接，让线程阻塞等待，还是直接回绝错误
        jedisPoolConfig.setBlockWhenExhausted(true);

        //等待超过5000ms后，此时如果还没有连接，返回错误
        jedisPoolConfig.setMaxWaitMillis(5000);

        //创建客户端的连接池
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop104", 6379, 120,"123456");
        //JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop104", 6379);

        //从池中借一个连接
        Jedis jedis = jedisPool.getResource();

        System.out.println(jedis);

       //jedis.auth("123456");

        String pong = jedis.ping();

        System.out.println(pong);

        //还回池中
        jedis.close();

    }

}
